#ifndef OPENCVUTILS_H
#define OPENCVUTILS_H
#include <QPixmap>
#include <QImage>
#include <opencv2/opencv.hpp>
/**
 * @brief 将 QPixmap 转换为 OpenCV 的 cv::Mat
 * @param pixmap 输入的 QPixmap 图像
 * @return 转换后的 cv::Mat，类型为 CV_8UC3，BGR 顺序（适合 OpenCV 使用）
 * 说明：
 * - QPixmap -> QImage -> cv::Mat
 * - 转换为 Format_RGB888，保证每个像素 3 通道
 * - clone() 保证返回的 Mat 数据独立，不依赖 QImage
 * - RGB 转 BGR，使颜色顺序与 OpenCV 一致
 */
cv::Mat QPixmapToCvMat(const QPixmap &pixmap);

/**
 * @brief 将 OpenCV 的 cv::Mat 转换为 QPixmap
 * @param mat 输入的 cv::Mat 图像
 * @return 转换后的 QPixmap
 * 说明：
 * - 如果 mat 是灰度图（单通道），转换为 RGB 三通道
 * - 如果 mat 是 BGR 图像，转换为 RGB
 * - QImage 使用 CV_8UC3 数据创建，保证显示正确
 */
QPixmap CvMatToQPixmap(const cv::Mat &mat);

#endif // OPENCVUTILS_H
